const path = require('path');
const fs = require('fs');

// 判断目录是否单文件
function isDirOne(dirname) {
  return fs.promises.readdir(dirname).then(files => {
    return files.length === 1;
  });
}

// 读取目录中第一个文件
function readOneFile(dirname) {
  return fs.promises.readdir(dirname).then(files => {
    return files[0];
  });
}
async function handleDownload(req, res) {
  const excelPath = path.join(__dirname, '../../output'); // 存储上传文件目录
  const isOneDir = await isDirOne(excelPath); // 目录中是否单文件
  if (!isOneDir) {
    return res.api_error('当前还没有进行爬取也没有备份数据导出');
  }
  // 后续处理
  const fileName = await readOneFile(excelPath); // 获取目录中文件
  const absPath = path.join(excelPath, fileName); // 上传目录完整路径
  res.set({
    'Content-Type': 'application/octet-stream'
  });
  res.download(absPath, '爬取数据.xlsx', err => {
    if (err) {
      return console.log('下载失败', err);
    }
    console.log('下载成功');
  });
}

module.exports = (req, res) => handleDownload(req, res);
